home *** CD-ROM | disk | FTP | other *** search
/ C++ für Kids / C++ for kids.iso / Buch / Movie2c.cpp < prev    next >
C/C++ Source or Header  |  1999-01-26  |  4KB  |  127 lines

  1. //---------------------------------------------------------------------------
  2. #include <vcl\vcl.h>
  3. #pragma hdrstop
  4.  
  5. #include "Movie2c.h"
  6. //---------------------------------------------------------------------------
  7. static inline TMovie *ValidCtrCheck()
  8. {
  9.     return new TMovie(NULL);
  10. }
  11. //---------------------------------------------------------------------------
  12. __fastcall TMovie::TMovie(TComponent* Owner)
  13.     : TImage(Owner)
  14. {
  15.   randomize();
  16.   Bremse = 5000000;
  17.   // probier aus, welcher Wert bei Dir am besten pa▀t!
  18. }
  19. //---------------------------------------------------------------------------
  20. __fastcall TMovie::TMovie(TComponent* Owner, String Datei)
  21.     : TImage(Owner)
  22. {
  23.   randomize();
  24.   Bremse = 5000000;
  25.   Bild = Datei;
  26. }
  27. //---------------------------------------------------------------------------
  28. namespace Movie2c
  29. {
  30.     void __fastcall Register()
  31.     {
  32.         TComponentClass classes[1] = {__classid(TMovie)};
  33.         RegisterComponents("ZusΣtzlich", classes, 0);
  34.     }
  35. }
  36. //---------------------------------------------------------------------------
  37. void __fastcall TMovie::SetSize (TRect Rechteck)
  38. {
  39.   Left   =  Rechteck.Left;
  40.   Top    =  Rechteck.Top;
  41.   Width  =  Rechteck.Right  - Rechteck.Left;
  42.   Height =  Rechteck.Bottom - Rechteck.Top;
  43. }
  44. //---------------------------------------------------------------------------
  45. void __fastcall TMovie::ShowImage (String Datei)
  46. {
  47.   Show ();
  48.   Picture->LoadFromFile (Datei);
  49.   Bild = Datei;
  50. }
  51. //---------------------------------------------------------------------------
  52. void __fastcall TMovie::HideImage (void)
  53. {
  54.   Hide ();
  55. }
  56. //---------------------------------------------------------------------------
  57. void __fastcall TMovie::GetNr (String Datei, int x)
  58. {
  59.   Pfad = Datei.SubString(1,Datei.Length()-5);
  60.   try
  61.   {Nr = StrToInt(Datei.SubString(Datei.Length()-4,1));}
  62.   catch (...)
  63.   {Nr = -1;}
  64.   if (Nr > x) Nr = 1;
  65. }
  66. //---------------------------------------------------------------------------
  67. void __fastcall TMovie::GetImage (String Datei)
  68. {
  69.   Picture->LoadFromFile (Datei);
  70.   for (int j=0; j<Bremse; j++) ;
  71.   Refresh ();
  72. }
  73. //---------------------------------------------------------------------------
  74. bool __fastcall TMovie::MoveImage (String Datei)
  75. {
  76.   // Nummer des aktuellen Bildes ermitteln
  77.   GetNr (Datei, 4);
  78.   // Wenn keine Nummer gefunden, Ende
  79.   if (Nr == -1) return false;
  80.   // Nacheinander Bild und Gegenstⁿck laden und zeigen
  81.   Show ();
  82.   for (int i=0; i<5; i++)
  83.   {
  84.     GetImage (Datei);
  85.     GetImage (Pfad + IntToStr(Nr+4) + ".bmp");
  86.   }
  87.   // ggf. Anfangsbild wieder zeigen
  88.   if (Bild != "") GetImage (Bild);
  89.   // alles ok
  90.   return true;
  91. }
  92. //---------------------------------------------------------------------------
  93. bool __fastcall TMovie::TurnImage (String Datei)
  94. {
  95.   // Nummer des aktuellen Bildes ermitteln
  96.   GetNr (Datei, 5);
  97.   // Wenn keine Nummer gefunden, Ende
  98.   if (Nr == -1) return false;
  99.   // Aufeinanderfolge Bilder laden und zeigen
  100.   Show ();
  101.   for (int i=Nr; i<Nr+4; i++)
  102.     GetImage (Pfad + IntToStr(i) + ".bmp");
  103.   // ggf. Anfangsbild wieder zeigen
  104.   if (Bild != "") GetImage (Bild);
  105.   // alles ok
  106.   return true;
  107. }
  108. //---------------------------------------------------------------------------
  109. bool __fastcall TMovie::TwistImage (String Datei)
  110. {
  111.   // Nummer des aktuellen Bildes ermitteln
  112.   GetNr (Datei, 8);
  113.   // Wenn keine Nummer gefunden, Ende
  114.   if (Nr == -1) return false;
  115.   // Bilder in zufΣlliger Reihenfolge laden und zeigen
  116.   Show ();
  117.   for (int i=0; i<20; i++)
  118.     // verwendet auch Hops0.bmp und Hops9.bmp
  119.     GetImage (Pfad + IntToStr(random(10)) + ".bmp");
  120.   // ggf. Anfangsbild wieder zeigen
  121.   if (Bild != "") GetImage (Bild);
  122.   // alles ok
  123.   return true;
  124. }
  125. //---------------------------------------------------------------------------
  126.  
  127.